The present invention pertains to a method and apparatus for encoding line code, and more particularly, to producing a run length limit MB810 line code that is DC free.
The primary purpose of line codes is to transform the frequency spectrum of a serial data stream so as to adapt the signal spectrum more closely to specific channel requirements. The code must also provide special characters outside the data alphabet for functions such as character synchronization, frame delimiters, and perhaps for abort, reset, idle, diagnostics, etc. In most cases a reduction in bandwidth by constraints on both the high and the low frequency components is desirable to reduce distortion in the transmission media, especially electromagnetic cables, or in the band limited receiver, and to reduce the effects of extrinsic and intrinsic noise.
Another aspect of codes is their interaction with noise and errors in the line digits. The redundancy associated with line codes can be used to supplement other error detection mechanisms or to monitor the quality of the channel with a minimal amount of circuitry.
Such codes generally exhibit the undesirable feature of enlarging error bursts in the decoded data, making detection by a cyclic redundancy check more difficult. A good transmission code should minimize these effects.
For fiber optic links and intra-establishment wire links, interest centers for many reasons on the family of two-level codes, called binary. Being binary, such codes fit nicely with optical channels suffering from nonlinearity, which cannot be perfectly eliminated in practiced engineering. Being binary, they offer the maximum receive signal-to-noise ratio (SNR) for the same given conditions, e.g., transmit optical power and optical span, compared to other multi-level codes.
For wire links one prefers codes with no DC and little low frequency content in order to DC isolate the transmission line from the driver and receiver circuitry, usually by transformers, and to reduce signal distortion on the line. Although these factors do not apply to the fiber optic case, good low frequency characteristics of the code are helpful for a number of reasons.
High-gain fiber-optic receivers need an AC coupling stage near the front end. The control of the drive level, receiver-gain, and equalization is simplified and the precision of control is improved, if it can be based on the average signal power, especially at top rates. DC restore circuits tend to lose precision with rising data rates to and cease to operate properly below the maximum rates for other circuits required in a transceiver. If the time constants associated with the parasitic capacitance at the front end of a receiver are comparable to or longer than a baud interval, a signal with reduced low frequency content will suffer less distortion and will enable many links to operate without an equalizing circuit.
By block coding, they can be made inherently run-length limited (RLL). They can be easily made to be dc-free. By block coding, it is easy to provide for extra control symbols.
In spite of all these advantages, a major concern playing against adopting the block coding is the fact that it usually requires more channel bandwidth than other choices due to the increased line rate. When using 8B/10B, for example, the main-lobe bandwidth, i.e., the bandwidth to the first power spectral null, is 12.5 GHz, 25% more than with uncoded binary input data.
Design of such a code, called minimum-bandwidth (MB) code, has been possible by making novel use of a theorem. The theorem establishes a condition for a digital signaling system to operate within the theoretical minimum-bandwidth dictated by Nyquist, hence usually called the Nyquist bandwidth, which is, by definition, half the signaling frequency. With most usual non-MB codes including Binary and 8B/10B, the line bandwidth is as wide as the signaling frequency.
The DC components of conventional codes that are infinite with its run-length, for example, scrambled NRZ, cause baseline wander of signals while they pass through an ac-coupled channel in high-speed communication network. In addition, the conventional codes require at least two times or more of Nyquist bandwidth. Therefore, in respect of transmission efficiency, the conventional codes are inferior.
The code disclosed by U.S. Pat. No. 5,022,051, xe2x80x9cDC-free line code for arbitrary data transmissionxe2x80x9d removes DC components in the coded data by maintaining the same number of ones and zeros within a certain period. However, the required bandwidth is two times the Nyquist bandwidth.
The code disclosed by U.S. Pat. No. 5,396,239, xe2x80x9cData and forward error control coding techniques for digital signalsxe2x80x9d restricts run-length, and thus the DC component is reduced. However, it also needs two times the Nyquist bandwidth.
The code disclosed by U.S. Pat. No. 4,486,739, xe2x80x9cByte oriented DC balanced (0,4) 8B/10B partitioned block transmission codexe2x80x9d converts an 8 bit input data into a 10 bit codeword so as to reduce DC component of the codeword. However, bandwidth of the coded data occupies two times the Nyquist bandwidth.
In xe2x80x9cLine coding for very high speed LANsxe2x80x9d, an 8 bit input data is divided into two 4 bit groups and encode them. It claims that the coding method provides a DC-free characteristic and simple implementation. However, it only provides a DC-free characteristic, not minimum bandwidth.
In xe2x80x9ccharge constrained (0,G/I,C) sequencesxe2x80x9d, run-length is limited and therefore the code has a DC-free characteristic. However, it only provides a DC-free characteristic, not minimum bandwidth.
In xe2x80x9cNew class of (2p)B(2p+1)B DC balanced line codesxe2x80x9d, disparity is restricted while coding is performed and therefore the code provides a DC-free characteristic. However, it only provides a DC-free characteristic, not minimum bandwidth.
Since the above mentioned conventional codes are only DC-free and not minimum bandwidth, the transmission efficiency in a band limited channel is decreased by a factor of two. Hence, there is a need for DC-free and minimum bandwidth characteristics to improve transmission performance and efficiency, such as is desired in high-speed networks.
The disclosed embodiments of the present invention provide a coding system that includes a method and apparatus for producing a run-length limited MB810 code.
In accordance with another aspect of the disclosed embodiment, such a coding system produces code that is DC-free and capable of operating within the theoretical Nyquist bandwidth for an MB810 code. This means the code is near optimum for run length, digital sum variation (DSV), and alternate sum variation (ASV) for an MB810 code.
The disclosed embodiments also provide such a coding system wherein each 8 bit input block is converted into 10 bit output codeword.
In accordance with a further aspect of the disclosed embodiments, the coding is performed by hardwire only to provide a wire-speed in encoding and decoding.
The foregoing features and advantages of the present invention are realized by utilizing a coding method for MB810 that converts 8-bit input data into 10-bit codeword, the codeword satisfying DC-free and minimum bandwidth characteristics.
The procedural steps of a general design method for MBmn line code can be summarized as follows:
Step 1: Select the number of input bits m and the number of output bits n for an (m,n) block code. In one embodiment, n should be an even number; a binary MBmn code of an odd value of n is found to be impossible. Preferably m is nxe2x88x921 for minimal redundancy. In the disclosed embodiment, a code design with m equal to nxe2x88x921 is impossible. In that case, m equal to nxe2x88x922 will be taken.
Step 2: Accumulate a sufficient number of BUDA (binary unit DSV and ASV) cell, as shown in FIG. 1, to form a BUDA stack for derivation of the state diagram. Note that stacking cells horizontally would increase the DSV value. Doing so vertically would increase the ASV value. Therefore, where to add additionally needed cells will depend on the design preference for the two spectral properties.
Step 3: Pick one node as a state, and secure at least 2{circumflex over ( )}m exit paths of an n-hop length. Denote each terminating node of each path as another state.
Step 4: Start with a new state and repeat the previous step. Paths on already existing state nodes should be terminated and generating new states should be avoided as far as possible.
Step 5: If it turns out that the stack needs to be expanded to complete the state diagram, add more cells to the stack either horizontally or vertically as appropriate.
Step 6: Reduce the number of states as possible with all transition paths terminating on one of the arranged states. If this trial succeeds, then the stack design is complete.
Step 7: At each state, arrange the mapping table as an input m-bit combination to an output n-bit combination. The result is the state transition table or codebook. Use the same mapping as far as possible across states to reduce the implementation complexity. This will also tend to simplify the decoding rule.
Step 8: If necessary, plot the power spectrum of the coded sequence with varying input bit probability, and choose the mapping that would generate the most desirable power spectral properties. Some of the criteria for desirable power spectral properties include the smoothness of the spectral envelope with the least spectral spikes and the symmetry of the spectral envelope across the whole frequency band of interest.
If all these steps are done successfully, then the code design itself is done with success.